热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

本文|初期_如何使用ModelBox快速提升AI应用性能?

篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何使用ModelBox快速提升AI应用性能?相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何使用ModelBox快速提升AI应用性能?相关的知识,希望对你有一定的参考价值。




摘要:在开发初期开发者往往聚焦在模型的精度上,性能关注较少,但随着业务量不断增加,AI应用的性能往往成为瓶颈,此时对于没有性能优化经验的开发者来说往往需要耗费大量精力做优化性能,本文为开发者介绍一些常用的优化方法和经验。

本文分享自华为云社区《如何使用ModelBox快速提升AI应用性能》,作者: panda。

随着AI技术和计算能力的发展,越来越多的开发者学会用tensorflow、pytorch等引擎训练模型并开发成AI应用以解决各种生产问题。在开发初期开发者往往聚焦在模型的精度上,性能关注较少,但随着业务量不断增加,AI应用的性能往往成为瓶颈,此时对于没有性能优化经验的开发者来说往往需要耗费大量精力做优化性能,本文为开发者介绍一些常用的优化方法和经验。本文首先介绍什么是AI应用性能优化,以及常用的性能优化手段,然后介绍华为云ModelBox开源框架,最后结合实际业务为例,详细讲解如何利用ModelBox框架进行快速的性能优化以及背后的原理。


一、AI应用常用性能优化方法


1、什么是AI应用性能优化

什么是AI应用性能优化? AI应用性能优化是保证结果正确的情况下,提升AI推理应用执行效率。AI应用性能优化的目的一般分为两方面:一方面可以提升用户体验,如门禁系统刷脸场景,对推理时延比较敏感,识别速度直接影响用户感官,再比如自动驾驶场景,对时延要求非常高;另一方面可以降低硬件成本,相同的硬件设备可以支撑更多的业务,当部署节点数具备一定规模时,节省的硬件成本就相当可观了。

如何去衡量性能的好坏?我们通常使用吞吐量和时延来衡量。 吞吐量在不同场景也有不同衡量指标,比如图片请求场景,一般使用qps作为吞吐量的指标,即每秒种处理的请求个数。在视频流场景,则一般使用视频并发路数来衡量。 时延是指数据输入到结果输出中间的处理时间差。正常来讲吞吐量越大越好,时延越小越好,在不同场景对吞吐量和时延的要求不一样, 对于某些时延不敏感的场景,我们可以牺牲时延来提升吞吐量。所以我们在做性能优化前需要先明确优化指标是吞吐量还是时延。


另外除此之外,在性能优化过程中,还需要重点关注一些系统资源指标,如内存、显存、CPU占用率、GPU占用率等。这些指标可以帮忙我们辅助判断当前资源使用情况,为我们做性能优化提供思路,如GPU利用率较低时,就需要针对性想办法充分利用GPU资源。


2、AI应用性能优化方法

一个AI应用可以分为模型和工程逻辑,AI应用的优化我们也可以从上到下进行划分,其中应用流程优化和应用工程优化为工程方面的优化,模型编译优化和模型算法优化则为模型优化。


可以看到同为batchsize为16时,通过预处理性能较纯模型推理优化性能有提升,同时全为cpu预处理时反而比gpu预处理性能好。这是因为一方面cpu预处理采用了多线程并发处理,另一方面GPU预处理抢占了GPU资源,影响了推理速度,从而影响整体性能。所以并不推荐所有操作都使用硬件加速,需要具体场景具体分析,保证资源计算的合理分配。



通过ModelBox优化后的数据执行情况如上,优化收益主要如下:

1、流程图每个节点都是独立线程执行,多个数据通过pipeline并行
2、除推理功能单元外,其他cpu预处理采用多线程执行,每个功能单元线程数可以灵活配置
3、不仅推理,其他功能单元的执行也可以是采用多硬件异构加速

AI应用的性能优化是一个循序渐进的过程,并不是所有方法都有效,开发者需要结果自身业务具体问题具体分析,才能到达事半功倍的效果。经过实际业务的优化实践,希望大家对如果使用ModeBox框架优化AI应用性能有一些初步了解,同时也能理解优化原理。如果对ModelBox感兴趣可以进入ModelBox官网详细了解。


点击关注,第一时间了解华为云新鲜技术~


推荐阅读
author-avatar
2012我的语言
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有